/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jogopoo.Personagem;

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.geom.AffineTransform;
import jogopoo.Grafico.GrafCenario;

/**
 *
 * @author acer_5542
 */
/**
 * Estende Personagem. Classe responsavel por objetos com animacao
 * @author acer_5542
 */
public abstract class PersonagemRot extends Personagens {

    public PersonagemRot(GrafCenario cenario, Image[] desenho) {
        super(cenario);
        this.desenho = desenho;
        this.indice = 0;
        this.incr = 1;
    }
/**
 * Metodo sobescrito de Personagens, faz o desenho da imagem e controla sua
 * animacao com atributos incr e indice.
 * @param g2
 */
    @Override
    public void desenha(Graphics2D g2) {
        
        AffineTransform at = new AffineTransform();
        at.rotate(-teta,posicao.x+origemX,posicao.y+origemY);
        at.translate((double)posicao.x,(double)posicao.y);
        g2.drawImage(desenho[indice], at, cenario);

        indice += incr;
        if (indice == desenho.length - 1) {
            indice = 0;
        }
    }
/**
 * Retorna o Angulo Teta da rotacao
 */
    public double getTeta(){
        return this.teta;
    }
/**
 * Retorna o Angulo Teta da rotacao
 */
    public int getOrigemX(){
        return this.origemY;
    }
/**
 * Retorna o Angulo Teta da rotacao
 */
    public int getOrigemY(){
        return this.origemX;
    }
/**
 * Seta o atributo angulo Teta
 */
    public void setTeta(double teta){
        this.teta = teta;
    }
    private int incr;
    private int indice;
    private Image[] desenho;
    protected double teta;
    protected int origemX;
    protected int origemY;
}
